package com.cq.hd.member.service;

import com.cq.hd.member.api.dto.WithdrawalCheckBillSaveDto;
import com.cq.hd.member.api.vo.CheckBillSaveResultVo;
import com.cq.hd.member.api.vo.WithdrawalCheckBillInitVo;
import com.cq.hd.member.api.vo.WithdrawalCheckBillPreVo;
import com.cq.hd.member.api.vo.WithdrawalCheckBillVo;
import com.cq.hd.member.po.TbWithdrawalBillPo;

import java.util.Collection;
import java.util.List;

public interface TbWithdrawalCheckBillService {

    /**
     * 核算单列表
     *
     * @param withdrawalBillIds 提现记录ids
     * @return 核算单列表
     */
    List<WithdrawalCheckBillVo> listByWithdrawalBillIds(Collection<Long> withdrawalBillIds);

    /**
     * 核算单详情
     *
     * @param id 核算单id
     * @return 核算单详情
     */
    WithdrawalCheckBillVo getDetail(Long id);

    /**
     * 初始化核算单
     *
     * @param withdrawalBillPo 提现记录
     */
    WithdrawalCheckBillInitVo initializeCheckBill(TbWithdrawalBillPo withdrawalBillPo);

    /**
     * 核算单确认
     *
     * @param id 核算单id
     * @return 操作结果
     */
    Boolean confirm(Long id);

    WithdrawalCheckBillInitVo checkInfo(Long checkBillId);

    CheckBillSaveResultVo saveCheckBill(WithdrawalCheckBillSaveDto checkBillSaveDto);

    WithdrawalCheckBillPreVo preCheckBill(Long checkBillId);

}
